httpClient4.x忽略证书直接调用 - CSDN博客
创建时间:
2018/1/8 11:29
来源:
http://blog.csdn.net/mn960mn/article/details/48520199
httpClient4.x忽略证书直接调用
原创
2015年09月17日 12:21:42
标签:
httpclient
.
.
[html]
view plain
copy
<
dependency
>
<
groupId
>
org.apache.httpcomponents
</
groupId
>
<
artifactId
>
httpclient
</
artifactId
>
<
version
>
4.5
</
version
>
</
dependency
>
代码如下:
[java]
view plain
copy
package
com.lala.httpclient;
import
java.net.URI;
import
java.security.cert.CertificateException;
import
java.security.cert.X509Certificate;
import
javax.net.ssl.SSLContext;
import
javax.net.ssl.TrustManager;
import
javax.net.ssl.X509TrustManager;
import
org.apache.http.HttpEntity;
import
org.apache.http.client.methods.CloseableHttpResponse;
import
org.apache.http.client.methods.HttpPost;
import
org.apache.http.impl.client.CloseableHttpClient;
import
org.apache.http.impl.client.HttpClientBuilder;
import
org.apache.http.ssl.SSLContextBuilder;
import
org.apache.http.ssl.TrustStrategy;
import
org.apache.http.util.EntityUtils;
public
class
Main
{
static
final
String url =
"https://www.xxxxx.cn/api/v1/rest.do"
;
/**
* 方法一
* @param clientBuilder
*/
public
static
void
configureHttpClient(HttpClientBuilder clientBuilder)
{
try
{
SSLContext sslContext =
new
SSLContextBuilder().loadTrustMaterial(
null
,
new
TrustStrategy()
{
// 信任所有
public
boolean
isTrusted(X509Certificate[] chain, String authType)
throws
CertificateException
{
return
true
;
}
}).build();
clientBuilder.setSSLContext(sslContext);
}
catch
(Exception e)
{
e.printStackTrace();
}
}
/**
* 方法二
* @param clientBuilder
*/
public
static
void
configureHttpClient2(HttpClientBuilder clientBuilder)
{
try
{
SSLContext ctx = SSLContext.getInstance(
"TLS"
);
X509TrustManager tm =
new
X509TrustManager()
{
public
void
checkClientTrusted(X509Certificate[] chain, String authType)
throws
CertificateException
{
}
public
void
checkServerTrusted(X509Certificate[] chain, String authType)
throws
CertificateException
{
}
public
X509Certificate[] getAcceptedIssuers()
{
return
null
;
}
};
ctx.init(
null
,
new
TrustManager[]{tm},
null
);
clientBuilder.setSSLContext(ctx);
}
catch
(Exception e)
{
e.printStackTrace();
}
}
public
static
void
main(String[] args)
throws
Exception
{
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
configureHttpClient2(httpClientBuilder);
CloseableHttpClient httpClient = httpClientBuilder.build();
HttpPost post =
new
HttpPost();
post.setURI(
new
URI(url));
CloseableHttpResponse resp = httpClient.execute(post);
HttpEntity httpEntity = resp.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
httpClient.close();
}
}